package com.daniel.create.singleton;

/**
 * @Description 静态内部类实现，当 Singleton 类加载时，静态内部类 SingletonHolder 没有被加载进内存。只有当调用 getUniqueInstance() 方法从而触发 SingletonHolder.INSTANCE 时 SingletonHolder 才会被加载，此时初始化 INSTANCE 实例。这种方式不仅具有延迟初始化的好处，而且由虚拟机提供了对线程安全的支持。
 * @Author GanShaoXi
 * @ClassName SingletonPattern_1
 * @Return com.daniel.create.singleton
 * @Since 1.0.0
 * @Created on 2023/5/16 19:43
 */
public class SingletonPattern_5 {

    private SingletonPattern_5() {
    }


    private static class SingletonHolder {
        private static final SingletonPattern_5 INSTANCE = new SingletonPattern_5();
    }

    /**
     * 获取单例
     *
     * @return
     */
    public static SingletonPattern_5 getUniqueInstance() {
        return SingletonHolder.INSTANCE;
    }

}
